﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

using SharedGenomics.Domain;
using SharedGenomics.Annotations;
using SharedGenomics.Workbench.Annotations;
using SharedGenomics.Workbench.PresentationModel;

namespace SharedGenomics.Workbench.Models
{
    public interface IAnalysisResultsModel
    {
        IList<WiggleElement> GetSortedWiggleElementListForResults(int[] resultIndices);
        IEnumerable<KeggPathwayFrequency> GetPathwayFrequenciesForResults(int[] resultIndices);
        bool TryGetAnnotationSetForValue(object value, out AnnotationInfoSet annotationSet);
        void LoadResultSet(IAnalysisResultSet results, AnalysisResultDataColumnSchema columnSchema);

        System.Collections.IEnumerable Results { get; }
        void SortResultsByColumn(string propertyName);
        AnalysisResult this[int index] { get; }
        bool[] GetResultAnnotationSetCompletedStatuses();

        event EventHandler ResultsChanged;
    }
}
